package com.onlyxiahui.common.action.description.handler;

import java.lang.reflect.Field;
import java.lang.reflect.Type;

import com.onlyxiahui.common.action.description.DocumentContext;
import com.onlyxiahui.common.action.description.bean.PropertyData;

/**
 * 
 * <br>
 * Date 2019-11-06 11:15:05<br>
 * 
 * @author XiaHui [onlovexiahui@qq.com]<br>
 * @since 1.0.0
 */

public interface PropertyValidateHandler {
	/**
	 * 
	 * Description <br>
	 * Date 2020-04-10 14:28:50<br>
	 * 
	 * @param context
	 * @param propertyData
	 * @param beanClass
	 * @param beanType
	 * @param field
	 * @return
	 * @since 1.0.0
	 */
	public boolean support(DocumentContext context, PropertyData propertyData, Class<?> beanClass, Type beanType, Field field);

	/**
	 * <br>
	 * Date 2020-04-10 14:28:40<br>
	 * 
	 * @param context
	 * @param propertyData
	 * @param beanClass
	 * @param beanType
	 * @param field
	 * @since 1.0.0
	 */
	public void handle(DocumentContext context, PropertyData propertyData, Class<?> beanClass, Type beanType, Field field);
}
